package com.zpark;

import java.util.Scanner;

/**
 * 生理周期
 */
public class PhysiologicalCycle {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入您要测试的数据组数：");
        int n = scan.nextInt();
        while (n-- > 0) {
            System.out.println("第一个体力高峰日");
            int p = scan.nextInt();
            System.out.println("第一个情感高峰日");
            int e = scan.nextInt();
            System.out.println("第一个智力高峰日");
            int i = scan.nextInt();
            System.out.println("今年的第一天");
            int d = scan.nextInt();
            System.out.println(nextTriplePeak(p, e, i, d));
        }

    }

    private static int nextTriplePeak(int p, int e, int i, int d) {
        int j;
        for (j = d + 1; j < 21252; j++) {   //枚举每一天
            if ((j - p) % 23 == 0)      // 找到第一个体力高峰日
                break;
        }
        for (; j < 21252; j += 23) {     //枚举每一个体力高峰日
            if ((j - e) % 28 == 0)
                break;                  // 找到第一个体力与情感的共同高峰日
        }
        for (; j < 21252; j += 23 * 28) {    //枚举每一个体力与情感的共同高峰日
            if ((j - i) % 33 == 0)
                break;
        }
        return j - d;
    }
}
